summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2023-03-26 04:45:05 +0200
committerMorph <39850852+Morph1984@users.noreply.github.com>2023-03-26 05:52:26 +0200
commitf09d192aac68f382b841dd47a3e43a2d8ff87e4d (patch)
tree6c2835f986f76f0fc5d03b9ee8c27427335d33df
parentcommon: Port boost's hash_value implementation (diff)
downloadyuzu-f09d192aac68f382b841dd47a3e43a2d8ff87e4d.tar
yuzu-f09d192aac68f382b841dd47a3e43a2d8ff87e4d.tar.gz
yuzu-f09d192aac68f382b841dd47a3e43a2d8ff87e4d.tar.bz2
yuzu-f09d192aac68f382b841dd47a3e43a2d8ff87e4d.tar.lz
yuzu-f09d192aac68f382b841dd47a3e43a2d8ff87e4d.tar.xz
yuzu-f09d192aac68f382b841dd47a3e43a2d8ff87e4d.tar.zst
yuzu-f09d192aac68f382b841dd47a3e43a2d8ff87e4d.zip
-rw-r--r--src/tests/CMakeLists.txt1
-rw-r--r--src/tests/common/container_hash.cpp41
2 files changed, 42 insertions, 0 deletions
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index ae84408bc..39b774c98 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -4,6 +4,7 @@
add_executable(tests
common/bit_field.cpp
common/cityhash.cpp
+ common/container_hash.cpp
common/fibers.cpp
common/host_memory.cpp
common/param_package.cpp
diff --git a/src/tests/common/container_hash.cpp b/src/tests/common/container_hash.cpp
new file mode 100644
index 000000000..923ac62db
--- /dev/null
+++ b/src/tests/common/container_hash.cpp
@@ -0,0 +1,41 @@
+// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#include <catch2/catch_test_macros.hpp>
+
+#include "common/common_types.h"
+#include "common/container_hash.h"
+
+TEST_CASE("ContainerHash", "[common]") {
+ constexpr std::array<u8, 32> U8Values{
+ 114, 10, 238, 189, 199, 242, 86, 96, 53, 193, 195, 247, 249, 56, 253, 61,
+ 205, 3, 172, 4, 210, 197, 43, 72, 103, 8, 99, 89, 5, 97, 68, 196,
+ };
+ constexpr std::array<u16, 32> U16Values{
+ 61586, 49151, 3313, 11641, 31695, 54795, 46764, 20965, 23287, 14039, 19265,
+ 49093, 58932, 22518, 27139, 42825, 57417, 54237, 48057, 14586, 42813, 32994,
+ 33970, 45501, 5619, 15895, 33227, 27509, 25391, 37275, 60218, 17599,
+ };
+ constexpr std::array<u32, 32> U32Values{
+ 3838402410, 2029146863, 1730869921, 985528872, 186773874, 2094639868, 3324775932,
+ 1795512424, 2571165571, 3256934519, 2358691590, 2752682538, 1484336451, 378124520,
+ 3463015699, 3395942161, 1263211979, 3473632889, 3039822212, 2068707357, 2223837919,
+ 1823232191, 1583884041, 1264393380, 4087566993, 3188607101, 3933680362, 1464520765,
+ 1786838406, 1311734848, 2773642241, 3993641692,
+ };
+ constexpr std::array<u64, 32> U64Values{
+ 5908025796157537817, 10947547850358315100, 844798943576724669, 7999662937458523703,
+ 4006550374705895164, 1832550525423503632, 9323088254855830976, 12028890075598379412,
+ 6021511300787826236, 7864675007938747948, 18099387408859708806, 6438638299316820708,
+ 9029399285648501543, 18195459433089960253, 17214335092761966083, 5549347964591337833,
+ 14899526073304962015, 5058883181561464475, 7436311795731206973, 7535129567768649864,
+ 1287169596809258072, 8237671246353565927, 1715230541978016153, 8443157615068813300,
+ 6098675262328527839, 704652094100376853, 1303411723202926503, 7808312933946424854,
+ 6863726670433556594, 9870361541383217495, 9273671094091079488, 17541434976160119010,
+ };
+
+ REQUIRE(Common::HashValue(U8Values) == 5867183267093890552);
+ REQUIRE(Common::HashValue(U16Values) == 9594135570564347135);
+ REQUIRE(Common::HashValue(U32Values) == 13123757214696618460);
+ REQUIRE(Common::HashValue(U64Values) == 7296500016546938380);
+}